In a system which includes a server 1 and a client device 2 that receives audio data from the server 1 as shown in FIG. 1, measures to synchronize the audio data between the server 1 and the client device 2 have been taken. In synchronizing the audio data between the server 1 and the client device 2, it is important to detect output timing of the audio data from the client device 2, or a delay within the client device 2. That is, in the system as shown in FIG. 1, a delay occurs from a receipt of the audio data by the client device 2 (i.e., writing of the audio data to a buffer memory) to the outputting of the audio data by the client device 2. This delay is mainly caused by software processing in the client device 2, and thus the delay time corresponds to time required for the processing by a control unit 23 such as CPU (a central control unit) at the client device 2. This delay time may be estimated. However, it is difficult to estimate or calculate the delay time precisely. Thus, to address this issue, it is necessary to accurately detect the delay time within the client device or detect the accurate output time of the audio data from the client device.
A delay also occurs at a DAC (Digital Analog Converter) 3, which receives the audio data and the audio clock from the control unit 23 and outputs the processed audio data to a speaker 4. The delay at the DAC 3 depends on the specific hardware of the DAC 3, and thus the delay time is generally constant and fixed. Thus, it is more important to address the delay at the client device 2.
In addition, each of the server 1 and the client device 2 generates a respective audio clock, and plays back the audio data based on the respective audio clock. Thus, when there is a phase difference between the audio clock of the server 1 and the audio clock of the client device 2, a time lag occurs between the playback by the server 1 and the playback by the client device 2.
Prior attempts disclose steps to synchronize the audio data between two or more devices. For example, Japanese Patent Application Publication No. 2004-357096 discloses that a server calculates a number of clock pulses of a server clock signal and sends the calculated number of the clock pulses to a client device. The client device also calculates a number of clock pulses of a client clock signal, and compares the received number of the clock pulses of the server clock signal and the calculated number of the clock pulses of the client clock signal. Then, the client device adjusts the frequency of the client clock signal based on the results of the comparison.
In addition, Japanese Patent Application Publication No. 2011-160272 discloses that the client device adjusts a frequency divider based on a difference between time T_Time, when the server transmits an audio frame to the client device, and time R_Time, when the client device receives it. In addition, the 2011-160272 publication discloses adjusting the frequency of the audio clock based on the difference between time P_Time, attached to the audio data, and the time R_Time, when the client device receives it.